package bennyhuo.generic

open class Waste

class DryWaste : Waste()

class Dustbin<in T : Waste> {
    /**
     * 消费者
     */
    fun put(t: T) {
    }
}

fun main() {

    val dustbin: Dustbin<Waste> = Dustbin<Waste>()
    val dryWasteDustbin: Dustbin<DryWaste> = dustbin

    val waste = Waste()
    val dryWaste = DryWaste()

    dustbin.put(waste)
    dustbin.put(dryWaste)

//    dryWasteDustbin.put(waste)  报错，干垃圾桶只能放干垃圾，不能放父类
    dryWasteDustbin.put(dryWaste)

}
